home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / syntax / virata.vim < prev    next >
Encoding:
Text File  |  2001-08-27  |  10.6 KB  |  209 lines

  1. " Vim syntax file
  2. " Language:    Virata Configuration Script
  3. " Maintainer:    Manuel M.H. Stol    <mmh.stol@gmx.net>
  4. " Last Change:    2001-08-24
  5. " Vim URL:    http://www.vim.org/lang.html
  6. " Virata URL:    http://www.virata.com/
  7.  
  8.  
  9. " Virata Configuration Script syntax
  10. "  Might be detected by: 1) Extension .hw, .pkg and .module (and .cfg)
  11. "                        2) The word "Virata" in the first 5 lines
  12.  
  13.  
  14. " Setup Syntax:
  15. if version < 600
  16.   "  Clear old syntax settings
  17.   syn clear
  18. elseif exists("b:current_syntax")
  19.   finish
  20. endif
  21. "  Virata syntax is case insensitive (mostly)
  22. syn case ignore
  23.  
  24.  
  25.  
  26. " Comments:
  27. " Virata comments start with %, but % is not a keyword character
  28. syn region  virataComment    start="^%" start="\s%"lc=1 keepend end="$" contains=@virataGrpInComments
  29. syn region  virataSpclComment    start="^%%" start="\s%%"lc=1 keepend end="$" contains=@virataGrpInComments
  30. syn keyword virataInCommentTodo    contained TODO FIXME XXX[XXXXX] REVIEW
  31. syn cluster virataGrpInComments    contains=virataInCommentTodo
  32. syn cluster virataGrpComments    contains=@virataGrpInComments,virataComment,virataSpclComment
  33.  
  34.  
  35. " Constants:
  36. syn match   virataStringError    +["]+
  37. syn region  virataString    start=+"+ skip=+\(\\\\\|\\"\)+ end=+"+ oneline contains=virataSpclCharError,virataSpclChar,@virataGrpDefSubsts
  38. syn match   virataCharacter    +'[^']\{-}'+ contains=virataSpclCharError,virataSpclChar
  39. syn match   virataSpclChar    contained +\\\(x\x\+\|\o\{1,3}\|['\"?\\abefnrtv]\)+
  40. syn match   virataNumberError    "\<\d\{-1,}\I\{-1,}\>"
  41. syn match   virataNumberError    "\<0x\x*\X\x*\>"
  42. syn match   virataNumberError    "\<\d\+\.\d*\(e[+-]\=\d\+\)\=\>"
  43. syn match   virataDecNumber    "\<\d\+U\=L\=\>"
  44. syn match   virataHexNumber    "\<0x\x\+U\=L\=\>"
  45. syn match   virataSizeNumber    "\<\d\+[BKM]\>"he=e-1
  46. syn match   virataSizeNumber    "\<\d\+[KM]B\>"he=e-2
  47. syn cluster virataGrpNumbers    contains=virataNumberError,virataDecNumber,virataHexNumber,virataSizeNumber
  48. syn cluster virataGrpConstants    contains=@virataGrpNumbers,virataStringError,virataString,virataCharacter,virataSpclChar
  49.  
  50.  
  51. " Identifiers:
  52. syn match   virataIdentError    contained "\<\D\S*\>"
  53. syn match   virataIdentifier    contained "\<\I\i\{-}\(\-\i\{-1,}\)*\>" contains=@virataGrpDefSubsts
  54. syn match   virataFileIdent    contained "\F\f*" contains=@virataGrpDefSubsts
  55. syn cluster virataGrpIdents    contains=virataIdentifier,virataIdentError
  56. syn cluster virataGrpFileIdents    contains=virataFileIdent,virataIdentError
  57.  
  58.  
  59. " Statements:
  60. syn match   virataStatement    "^\s*Config\(\.\(hs\=\|s\)\)\=\>"
  61. syn match   virataStatement    "^\s*Config\s\+\I\i\{-}\(\-\i\{-1,}\)*\.\(hs\=\|s\)\>"
  62. syn match   virataStatement    "^\s*Undefine\>"
  63. syn match   virataStatement    "^\s*Make\.\I\i\{-}\(\-\i\{-1}\)*\>" skipwhite nextgroup=@virataGrpIdents
  64. syn match   virataStatement    "^\s*Make\.c\(at\)\=++\s"me=e-1 skipwhite nextgroup=@virataGrpIdents
  65. syn match   virataStatement    "^\s*\(Architecture\|Colour\|Reserved\)\>" skipwhite nextgroup=@virataGrpIdents
  66. syn match   virataStatement    "^\s*\(Hardware\|ModuleSource\|Path\)\>" skipwhite nextgroup=@virataGrpFileIdents
  67. syn match   virataStatement    "^\s*\(DefaultPri\(ority\)\=\|Hydrogen\)\>" skipwhite nextgroup=virataDecNumber,virataNumberError
  68. syn match   virataStatement    "^\s*\(Allow\s\+ModuleConfig\|NoInit\|PCI\|SysLink\)\>"
  69.  
  70. " Import (Package <exec>|Module <name> from <dir>)
  71. syn region  virataImportDef    transparent matchgroup=virataStatement start="^\s*Import\>" keepend end="$" contains=virataInImport,virataModuleDef,virataNumberError,virataStringError,@virataGrpDefSubsts
  72. " Export (Header <header file>|SLibrary <obj file>)
  73. syn region  virataExportDef    transparent matchgroup=virataStatement start="^\s*Export\>" keepend end="$" contains=virataInExport,virataNumberError,virataStringError,@virataGrpDefSubsts
  74. syn match   virataInExport    contained "\<\(Header\|[SU]Library\)\>" skipwhite nextgroup=@virataGrpFileIdents
  75. " Process <name> Is <dir/exec>
  76. syn region  virataProcessDef    transparent matchgroup=virataStatement start="^\s*Process\>" keepend end="$" contains=virataInProcess,virataInExec,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents
  77. syn match   virataInProcess    contained "\<is\>"
  78. " Instance <name> from <module>
  79. syn region  virataInstanceDef    transparent matchgroup=virataStatement start="^\s*Instance\>" keepend end="$" contains=virataInInstance,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents
  80. syn match   virataInInstance    contained "\<of\>"
  81. " Module <name> from <dir>
  82. syn region  virataModuleDef    transparent matchgroup=virataStatement start="^\s*\(Module\|Package\)\>" keepend end="$" contains=virataInModule,virataNumberError,virataStringError,@virataGrpDefSubsts
  83. syn match   virataInModule    contained "^\s*\(Module\|Package\)\>" skipwhite nextgroup=@virataGrpIdents
  84. syn match   virataInModule    contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents
  85. " Link {<link cmds>}
  86. " Object {Executable [<ExecOptions>]}
  87. syn match   virataStatement    "^\s*\(Link\|Object\)"
  88. " Executable <name> [<ExecOptions>]
  89. syn region  virataExecDef    transparent matchgroup=virataStatement start="^\s*Executable\>" keepend end="$" contains=virataInExec,virataNumberError,virataStringError
  90. syn match   virataInExec    contained "^\s*Executable\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents
  91. syn match   virataInExec    contained "\<\(epilogue\|pro\(logue\|cess\)\|qhandler\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents
  92. syn match   virataInExec    contained "\<\(priority\|stack\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpNumbers
  93. " Message <name> {<msg format>}
  94. " MessageId <number>
  95. syn match   virataStatement    "^\s*Message\(Id\)\=\>" skipwhite nextgroup=@virataGrpNumbers
  96. " MakeRule <make suffix=file> {<make cmds>}
  97. syn region  virataMakeDef    transparent matchgroup=virataStatement start="^\s*MakeRule\>" keepend end="$" contains=virataInMake,@virataGrpDefSubsts
  98. syn case match
  99. syn match   virataInMake    contained "\<N\>"
  100. syn case ignore
  101. " (Append|Edit|Copy)Rule <make suffix=file> <subst cmd>
  102. syn match   virataStatement    "^\s*\(Append\|Copy\|Edit\)Rule\>"
  103. " AlterRules in <file> <subst cmd>
  104. syn region  virataAlterDef    transparent matchgroup=virataStatement start="^\s*AlterRules\>" keepend end="$" contains=virataInAlter,@virataGrpDefSubsts
  105. syn match   virataInAlter    contained "\<in\>" skipwhite nextgroup=@virataGrpIdents
  106. " Clustering
  107. syn cluster virataGrpInStatmnts    contains=virataInImport,virataInExport,virataInExec,virataInProcess,virataInAlter,virataInInstance,virataInModule
  108. syn cluster virataGrpStatements    contains=@virataGrpInStatmnts,virataStatement,virataImportDef,virataExportDef,virataExecDef,virataProcessDef,virataAlterDef,virataInstanceDef,virataModuleDef
  109.  
  110. " Cfg File Statements:
  111. syn region  virataCfgFileDef    transparent matchgroup=virataCfgStatement start="^\s*Dir\>" start="^\s*\a\{-}File\>" start="^\s*OutputFile\d\d\=\>" start="^\s*\a\w\{-}[NP]PFile\>" keepend end="$" contains=@virataGrpFileIdents
  112. syn region  virataCfgSizeDef    transparent matchgroup=virataCfgStatement start="^\s*\a\{-}Size\>" start="^\s*ConfigInfo\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts,virataIdentError
  113. syn region  virataCfgNumberDef    transparent matchgroup=virataCfgStatement start="^\s*FlashchipNum\(b\(er\=\)\=\)\=\>" start="^\s*Granularity\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts
  114. syn region  virataCfgMacAddrDef    transparent matchgroup=virataCfgStatement start="^\s*MacAddress\>" keepend end="$" contains=virataNumberError,virataStringError,virataIdentError,virataInMacAddr,@virataGrpDefSubsts
  115. syn match   virataInMacAddr    contained "\x[:]\x\{1,2}\>"lc=2
  116. syn match   virataInMacAddr    contained "\s\x\{1,2}[:]\x"lc=1,me=e-1,he=e-2 nextgroup=virataInMacAddr
  117. syn match   virataCfgStatement    "^\s*Target\>" skipwhite nextgroup=@virataGrpIdents
  118. syn cluster virataGrpCfgs    contains=virataCfgStatement,virataCfgFileDef,virataCfgSizeDef,virataCfgNumberDef,virataCfgMacAddrDef,virataInMacAddr
  119.  
  120.  
  121.  
  122. " PreProcessor Instructions:
  123. "  Defines
  124. syn match   virataDefine    "^\s*\(Un\)\=Set\>"
  125. syn match   virataDefSubstError    "[^$]$"lc=1
  126. syn match   virataDefSubstError    "$\(\w\|{\(.\{-}}\)\=\)"
  127. syn case match
  128. syn match   virataDefSubst    "$\(\d\|[DINORS]\|{\I\i\{-}\(\-\i\{-1,}\)*}\)"
  129. syn case ignore
  130. "  Conditionals
  131. syn cluster virataGrpCntnPreCon    contains=ALLBUT,@virataGrpInComments,@virataGrpFileIdents,@virataGrpInStatmnts
  132. syn region  virataPreConDef    transparent matchgroup=virataPreCondit start="^\s*If\>" end="^\s*Endif\>" contains=@virataGrpCntnPreCon
  133. syn match   virataPreCondit    contained "^\s*Else\(\s\+If\)\=\>"
  134. syn region  virataPreConDef    transparent matchgroup=virataPreCondit start="^\s*ForEach\>" end="^\s*Done\>" contains=@virataGrpCntnPreCon
  135. "  Pre-Processors
  136. syn region  virataPreProc    start="^\s*Error\>" oneline end="$" contains=@virataGrpConstants,@virataGrpDefSubsts
  137. syn cluster virataGrpDefSubsts    contains=virataDefSubstError,virataDefSubst
  138. syn cluster virataGrpPreProcs    contains=@virataGrpDefSubsts,virataDefine,virataPreConDef,virataPreCondit
  139.  
  140.  
  141. " Synchronize Syntax:
  142. syn sync clear
  143. syn sync minlines=50        "for multiple region nesting
  144.  
  145.  
  146.  
  147. " Define the default highlighting.
  148. " For version 5.7 and earlier: only when not done already
  149. " For version 5.8 and later  : only when an item doesn't have highlighting yet
  150. if version >= 508 || !exists("did_virata_syntax_inits")
  151.   if version < 508
  152.     let did_virata_syntax_inits = 1
  153.     command -nargs=+ HiLink hi link <args>
  154.   else
  155.     command -nargs=+ HiLink hi def link <args>
  156.   endif
  157.  
  158.   " Sub Links:
  159.   HiLink virataDefSubstError    virataPreProcError
  160.   HiLink virataDefSubst        virataPreProc
  161.   HiLink virataInAlter        virataOperator
  162.   HiLink virataInExec        virataOperator
  163.   HiLink virataInExport        virataOperator
  164.   HiLink virataInImport        virataOperator
  165.   HiLink virataInInstance    virataOperator
  166.   HiLink virataInMake        virataOperator
  167.   HiLink virataInModule        virataOperator
  168.   HiLink virataInProcess    virataOperator
  169.   HiLink virataInMacAddr    virataHexNumber
  170.  
  171.   " Comment Group:
  172.   HiLink virataComment        Comment
  173.   HiLink virataSpclComment    SpecialComment
  174.   HiLink virataInCommentTodo    Todo
  175.  
  176.   " Constant Group:
  177.   HiLink virataString        String
  178.   HiLink virataStringError    Error
  179.   HiLink virataCharacter    Character
  180.   HiLink virataSpclChar        Special
  181.   HiLink virataDecNumber    Number
  182.   HiLink virataHexNumber    Number
  183.   HiLink virataSizeNumber    Number
  184.   HiLink virataNumberError    Error
  185.  
  186.   " Identifier Group:
  187.   HiLink virataIdentError    Error
  188.  
  189.   " PreProc Group:
  190.   HiLink virataPreProc        PreProc
  191.   HiLink virataDefine        Define
  192.   HiLink virataInclude        Include
  193.   HiLink virataPreCondit    PreCondit
  194.   HiLink virataPreProcError    Error
  195.   HiLink virataPreProcWarn    Todo
  196.  
  197.   " Directive Group:
  198.   HiLink virataStatement    Statement
  199.   HiLink virataCfgStatement    Statement
  200.   HiLink virataOperator        Operator
  201.   HiLink virataDirective    Keyword
  202.  
  203.   delcommand HiLink
  204. endif
  205.  
  206. let b:current_syntax = "virata"
  207.  
  208. " vim:ts=8:sw=2:noet:
  209.